﻿using System;
using System.Security.Principal;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Security;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using MVCBugTracker;
using MVCBugTracker.Controllers;
using MVCBugTracker.Models;
using System.Linq;
using System.Collections.Generic;

namespace MVCBugTracker.Tests.Mocks
{
    public class MockProjectRepository : IProjectRepository
    {
        private List<Project> ProjectList = new List<Project>();

        public MockProjectRepository(List<Project> projects)
        {
            ProjectList = projects;
        }

        public IQueryable<Project> GetAllProjects()
        {
            return from p in ProjectList.AsQueryable()
                   where p.Deleted == false
                   select p;
        }

        public IQueryable<Project> GetMyProjects(string userName)
        {
            throw new NotImplementedException();
        }

        public Project GetProject(int projectID)
        {
            throw new NotImplementedException();
        }

        public void AddProject(Project project)
        {
            throw new NotImplementedException();
        }

        public void DeleteProject(Project project)
        {
            throw new NotImplementedException();
        }

        public void Save()
        {
            throw new NotImplementedException();
        }

        public IQueryable<ProjectMilestone> GetProjectMilestones(int projectID)
        {
            throw new NotImplementedException();
        }

        public ProjectMilestone GetProjectMilestone(int milestoneID)
        {
            throw new NotImplementedException();
        }

        public void AddProjectMilestone(ProjectMilestone milestone)
        {
            throw new NotImplementedException();
        }

        public void DeleteProjectMilestone(ProjectMilestone milestone)
        {
            throw new NotImplementedException();
        }

        public IQueryable<ProjectCategory> GetProjectCategories(int projectID)
        {
            throw new NotImplementedException();
        }

        public ProjectCategory GetProjectCategory(int milestoneID)
        {
            throw new NotImplementedException();
        }

        public void AddProjectCategory(ProjectCategory category)
        {
            throw new NotImplementedException();
        }

        public void DeleteProjectCategory(ProjectCategory category)
        {
            throw new NotImplementedException();
        }

        public IQueryable<ProjectPriority> GetProjectPriorities(int projectID)
        {
            throw new NotImplementedException();
        }

        public ProjectPriority GetProjectPriority(int priorityID)
        {
            throw new NotImplementedException();
        }

        public void AddProjectPriority(ProjectPriority priority)
        {
            throw new NotImplementedException();
        }

        public void DeleteProjectPriority(ProjectPriority priority)
        {
            throw new NotImplementedException();
        }

        public IQueryable<ProjectStatus> GetProjectStatuses(int projectID)
        {
            throw new NotImplementedException();
        }

        public ProjectStatus GetProjectStatus(int statusID)
        {
            throw new NotImplementedException();
        }

        public void AddProjectStatus(ProjectStatus status)
        {
            throw new NotImplementedException();
        }

        public void DeleteProjectStatus(ProjectStatus status)
        {
            throw new NotImplementedException();
        }

        public IQueryable<ProjectCustomField> GetProjectCustomFields(int projectID)
        {
            throw new NotImplementedException();
        }

        public ProjectCustomField GetProjectCustomField(int customFieldID)
        {
            throw new NotImplementedException();
        }

        public void AddProjectCustomField(ProjectCustomField customField)
        {
            throw new NotImplementedException();
        }

        public void DeleteProjectCustomField(ProjectCustomField customField)
        {
            throw new NotImplementedException();
        }

        public IQueryable<ProjectCustomFieldValue> GetProjectCustomFieldValues(int projectID)
        {
            throw new NotImplementedException();
        }

        public ProjectCustomFieldValue GetProjectCustomFieldValue(int customFieldID)
        {
            throw new NotImplementedException();
        }

        public void AddProjectCustomFieldValue(ProjectCustomFieldValue customFieldValue)
        {
            throw new NotImplementedException();
        }

        public void DeleteProjectCustomFieldValue(ProjectCustomFieldValue customFieldValue)
        {
            throw new NotImplementedException();
        }

        public IQueryable<ProjectMember> GetProjectMembers(int projectID)
        {
            throw new NotImplementedException();
        }

        public ProjectMember GetProjectMember(int projectID, string userName)
        {
            throw new NotImplementedException();
        }

        public void AddProjectMember(ProjectMember projectMember)
        {
            throw new NotImplementedException();
        }

        public void DeleteProjectMember(ProjectMember projectMember)
        {
            throw new NotImplementedException();
        }
    }
}
